﻿///////////////////////////////////////////////////////////////////////////////
// 文件名： LibraryLoader.hpp
// 作者：   671643387@qq.com
// 日期：   2015年11月2日 下午7:28:28
// 简介：   
///////////////////////////////////////////////////////////////////////////////

#if !defined(GRAPHICS_GRAPHICS_LIBRARYLOADER_HPP_)
#define GRAPHICS_GRAPHICS_LIBRARYLOADER_HPP_

#if defined(_MSC_VER) && (_MSC_VER >= 1200)
# pragma once
#endif

#include <boost/noncopyable.hpp>
#include <graphics/Type.hpp>

#if defined(__WINDOWS__)
#define WIN32_LEAN_AND_MEAN
#include <Windows.h>
#endif

namespace graphics
{
    class LibraryLoader : public boost::noncopyable
    {
    public:
        LibraryLoader(void);
        ~LibraryLoader(void);

    public:
        bool Load(::graphics::string filename);
        void Unload(void);
        void* GetFunc(const char* funname);

    private:
#if defined(__WINDOWS__)
        HMODULE hLibrary_;
#endif
    };
}

#endif //GRAPHICS_GRAPHICS_LIBRARYLOADER_HPP_
